<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Concept: Iteration Lifecycle</title>
<meta name="uma.type" content="Concept">
<meta name="uma.name" content="iteration_lifecycle">
<meta name="uma.presentationName" content="Iteration Lifecycle">
<meta name="element_type" content="concept">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="_DI_tICNaEdyCq8v2ZO4QcA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Concept: Iteration Lifecycle</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/concept.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">The iteration lifecycle provides a set of team-based practices describing how to leverage iterations to focus the team on delivering incremental value to stakeholders in a predictable manner.</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../publish.openup.base/guidances/supportingmaterials/introduction_to_openup_EFA29EF3.html" guid="_sOaNACatEd21TMX858E1gw">Introduction to OpenUP</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><p>
    Iterations&nbsp;keep the team focused on delivering incremental customer value every few weeks by delivering a fully
    tested, demonstrable or shippable build (product increment). This creates a healthy focus on ensuring that whatever is
    worked on is of value to the stakeholders. Decision making must happen faster than in a process without iterations,
    because there is no time for endless debate. Iterative development focuses on producing working code, reducing the risk
    of analysis-paralysis. Frequent demonstration of working code provides feedback mechanisms that allow course
    corrections to be taken as needed.
</p>
<p>
    Iteration planning, estimation, and progress tracking are centered on work items. The iteration plan is created by
    selecting the top-priority work items. Agile estimation techniques are used to understand how many work items can
    safely fit within the time-boxed iteration, and work items are filtered to ensure that the chosen work items will allow
    the team to deliver upon iteration objectives agreed to by stakeholders. Progress is demonstrated through continuous
    completion of many small work items (see <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/micro_increments_C8773066.html" guid="_S80VwCNbEdyCq8v2ZO4QcA">Micro-Increments</a>).
</p>
<p>
    Just as a project goes through a lifecycle, iterations go through a lifecycle with a different focus for the team,
    depending on whether you are in the first or the last week of the iteration (see Figure 1 below). An iteration starts
    with an iteration planning meeting that is a few hours long. The initial one or two days are typically focused on
    further planning and architecture to, among other things, understand the dependencies and logical ordering of work
    items, and the architectural impacts of the work to be done. Most of the time during an iteration is spent on executing
    the micro increments. Each micro increment should deliver tested code to a build, as well as validated artifacts. To
    give additional discipline, stable builds are produced at the end of each week. More attention is spent on these builds
    to make sure that the quality is not eroding, and issues are dealt with early so that the success of the iteration
    isn't jeopardized. The last week or last few days of the iteration typically have a stronger emphasis on polishing and
    bug fixing than earlier weeks, even though new features are added as appropriate. The goal is to never let quality
    erode, thus ensuring&nbsp;that a high-quality useful product increment is produced at the end of the iteration. The
    iteration ends with an assessment (with stakeholders) of what was built, and a retrospective to understand how to
    improve the process for next iteration.
</p>
<p>
    <b>Figure 1. An iteration goes through a lifecycle with a stronger focus on planning and architecture early on, and a
    stronger focus on bug fixing and stabilization toward the end.</b>
</p>
<p>
    <img     alt="Picture shows an iteration that starts with a planning meeting, has stable weekly builds, and ends with an iteration review."      src="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/./resources/iteration_lifecycle.jpg" />
</p><br />
<br /><p/><p> Team members work more effectively if they can influence what they do and 
  how they do it, rather than operating in an environment where they are told 
  what to do. Giving the team the ability and responsibility to organize their 
  work and determine how to best meet their commitments motivates team members 
  to do their best. This also helps them collaborate to ensure that the right 
  skills are applied to the appropriate tasks. Self-organization impacts many 
  areas, including how planning and commitments are made (by a team, not by individuals), 
  how work is assigned (you sign up rather than get assigned), and how team members 
  view their roles in the project (team member first, job function second). </p>
<p> <a class="elementLinkWithUserText" href="./../../../practice.mgmt.whole_team.base/guidances/guidelines/self_organize_work_assignments_F47FC314.html" guid="_rmBEkJjsEduad8I_c-ogIA">Self-organization</a>&nbsp;requires 
  a few things to work: </p>
<ul>
    
  <li> Transparency and commitments are crucial to aid in team communication and 
    to bring out the best in the team members. Open communication about the team's 
    commitments related to the iteration lifecycle and personal commitments made 
    relative to micro increments ensures that execution problems are vetted and 
    the right people are focused on solving them. </li>
    
  <li> Coaching is required to help teams self-organize and to remove barriers 
    for success. The assumption is that the project manager is the coach. This 
    requires that the project manager avoid a command-and-control style of management 
    in favor of a coaching style. This has been a key recommendation in management 
    books for the last two decades, but some project managers may still not be 
    able to make that transition. </li>
</ul></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"><p> This program and the accompanying materials are made available under the<br />
  <a href="http://www.eclipse.org/org/documents/epl-v10.php" target="_blank">Eclipse 
  Public License V1.0</a>, which accompanies this distribution. </p><p/><p> <a class="elementLink" href="./../../../core.default.release_copyright.base/guidances/supportingmaterials/openup_copyright_C3031062.html" guid="_UaGfECcTEduSX6N2jUafGA">OpenUP Copyright</a></p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
